說明移動平均線上揚、移動平均線下彎、跌破、突破,與股價之間的關係,將時間和空間兩大技術分析的要素,做了完美的結合。
用一條移動平均線搭配股價的漲跌,並強調移動平均線的上揚與下彎的重要性;並沒局限於哪一條移動平均線。以下為葛蘭碧八大法則4種買點與4種賣點的圖例:
4種買點與4種賣點不一定會出現,且不一定依照順序發生。
單線控盤符合葛蘭碧八大法則的原始定義,當收盤價突破上升的移動平均線做為買點。程式碼如下所示:
cnt = 0
while cnt <= len(df_k_line) - 1:
try :
if df_k_line.iloc[cnt]['Close'] < df_k_line.iloc[cnt+1]['Close'] and df_k_line.iloc[cnt+1]['Close'] < df_k_line.iloc[cnt+2]['Close'] :
if df_sma.iloc[cnt]['SMA20'] < df_sma.iloc[cnt+1]['SMA20'] and df_sma.iloc[cnt+1]['SMA20'] < df_sma.iloc[cnt+2]['SMA20'] :
if df_sma.iloc[cnt+1]['SMA20'] > df_k_line.iloc[cnt]['Close'] and df_sma.iloc[cnt+2]['SMA20'] < df_k_line.iloc[cnt+1]['Close'] :
buy_point_index = cnt+1
buy_point_date = df_k_line.iloc[buy_point_index].name.strftime("%Y-%m-%d")
print('買點日期:{}'.format(buy_point_date))
# 設定K線格式
mc = mpf.make_marketcolors(up='xkcd:light red', down='xkcd:almost black', inherit=True)
s = mpf.make_mpf_style(base_mpf_style='yahoo', marketcolors=mc)
# 設定買點與移動平均線
buy_point_len = len(np.array(df_k_line['Close']))
buy_point = np.array([np.nan]*buy_point_len)
buy_point[buy_point_index] = df_k_line.iloc[buy_point_index]['Close']
apds = [
mpf.make_addplot(buy_point,type='scatter',marker='o',markersize=75,color='xkcd:bright blue'),
mpf.make_addplot(df_sma['SMA20'],width=0.4,color='xkcd:violet')
]
# 繪出K線圖
kwargs = dict(type='candle', style=s, figratio=(19,10), addplot=apds, datetime_format='%Y-%m-%d')
mpf.plot(df_k_line,**kwargs)
except:
pass
cnt=cnt+1
程式執行結果如下所示:
在此找到的買點就是葛蘭碧八大法則的1買點之法則。完整的程式碼請參照「第二十一天:葛蘭碧八大法則.ipynb」。